软件反调试(8)- 基于SEH异常的检测
反调原理 异常处理 SEH(Structured Exception Handling)是 windows 提供的一种结构化异常处理机制,用于捕捉并处理运行时异常(如除以零、访问无效内存等)
基本结构如下
__try { // 可能抛出异常的代码 } __except(EXCEPTION_EXECUTE_HANDLER) { // 异常处理代码 } 目标程序在被调试时,程序触发的异常会被调试器优先处理,而不是程序的 SEH 来处理
调试器先收到 “first-chance exception” 通知,如果调试器选择不处理,异常将会传递给程序的 SEH 来进行处理
如果 SEH 也不处理该异常,调试器将会再次收到 “second-chance exception” …

软件反调试(7)- 基于NtSetInformationThread设置线程信息
反调原理 NtSetInformationThread 和 ZwSetInformationThread 是本质相同的函数,Nt 位于 ntdll.dll 模块,在用户模式下供应用程序调用
Zw 位于内核模式中,供驱动/内核模块使用,它们的调用关系如下
NtSetInformationThread -> syscall -> 内核 -> ZwSetInformationThread(或统一的内核服务处理函数)
通过 NtSetInformationThread 设置线程的某些属性,可以对调试器的行为造成干扰,最常见的反调试用途是 隐藏线程
函数原型如下
__kernel_entry NTSYSCALLAPI NTSTATUS NtSetInformationThread( [in] …

hugo博客优化PasteImage以及其他
前言 之前的博客是使用 halo 进行搭建的,前段时间迁移到了 hugo 构建,在 halo 中文章的图片是保存到自建的 easyimage 图床上的
在迁移到 hugo 后,图片不再需要保存到图床上,直接保存在 md 文件的当前目录下即可,基于 hugo 的配置,完整路径为 /archives/xxx/phndmy.png 这种格式
其中 xxx 为当前 md 文件的目录,phndmy 为图片的随机名称,在 vscode 中本身也支持 ctrl + v 粘贴剪切板中的图片,但是并不支持这种自定义路径和随机文件名
PasteImage插件 vscode 插件市场里面有很多同类插件,其中安装量最大的是下面这款,从最后 commit 的时间来看,已经是 6 年前的了
查看该插件的配置说明,也并不支持这种自定义路径和 …

软件反调试(6)- 基于NtQueryInformationProcess的检测
反调原理 NtQueryInformationProcess 是一个未公开的函数,函数原型如下,关于函数的更多信息可以参考官方的文档 MSDN
__kernel_entry NTSTATUS NtQueryInformationProcess( [in] HANDLE ProcessHandle, [in] PROCESSINFOCLASS ProcessInformationClass, [out] PVOID ProcessInformation, [in] ULONG ProcessInformationLength, [out, optional] PULONG ReturnLength ); 使用 ProcessInformationClass 字段赋予不同值的方式来进行检测
0x00 检测PEB结构 …

软件反调试(5)- 基于注册表实时调试器检测
反调原理 当程序发生异常崩溃的时候,如果设置了系统的调试器,那么就会启动调试器来调试该异常
这个信息是记录在注册表中的,win32 和 win64 版本分别是两个不同的路径,Debugger 表示调试器路径,Auto 为 1 表示启用自动附加调试
//32 位调试器的注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug //64 位调试器的注册表路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 在调试器中也可以进行设置,设置后将会覆写注册表这里的配置项,在程序发生异常时将会启动新设置的调试 …

基于悬浮球快速启停ssr进程
前言 路由器安装了 openwrt 并启用了 ssr 实现了分流,但是由于插件或者 ip 库存在一些问题,导致部分流量并没有按预期的走,这引发了很多不必要的麻烦
插件的代码逻辑,短时间内也没精力去研究怎么优化,只能暂时通过手动 start、stop 规避,而且在路由器的 web 管理页面,发现只能开启而不能停止
然后为了停止插件,还必须得登录路由器的终端,手动去运行命令实现停止,即便在 web 页面上可以 stop,每次登录 web 去停止是一件极其麻烦的事
因此,编写了一个小工具实现手动 start/stop 路由器的 ssr 插件,在 windows 本地运行一个悬浮小球,类型于 360 加速小球这种
在路由器运行一个 lua 脚本,提供一个启停 ssr 的接口,本地悬浮小球实时显示路由器 ssr 插件的运 …

clawcloud测评
前言 最近准备入手一台海外的 vps,在网上了解了一下,一些人在推 claw cloud 的机器,总体评测还不错
考虑到国内的延时,然后就入手了一台香港的 claw vps,使用官方的优惠码,2C4G 的机器年付花了 48 刀,人民币 346,汇率 7.22
结果给踩坑里去了,延时实在是太高了,考虑退款的,还得扣 10% 的手续费,什么事都没干就抽 10%,先留着吧,后面再看怎么利用起来
itdog ping测试如下,全部是橙黄色的,延时都在 300 以上,这是在早上低峰期 ping 的,网上高峰期 ping 的话接近 500
使用 opentrace 测试节点线路,发现是绕美国去了,然后再打道回日本,最后到达香港
延时都不是最大的问题,最大的问题是掉包严重,部分地区访问掉包率超过了 10%,网上高峰期掉包更加 …

加速访问基于hugo部署的静态博客站点
前言 前几天使用 hugo 构建了博客,并部署到了 github pages 上,然后通过托管在 cloudflare 上的域名进行访问
在魔法加持的情况下,表现没有任何异常,但是关闭魔法后,访问域名就出现间歇性抽风,通过 itdog 测试 ping 延时的部分情况如下
国内大部分地区访问均出现严重丢包的情况,一些地区的 dns 解析直接被污染了(如下面的甘肃兰州)
对于移动线路的访问,情况就更加严重了,请求全部都是失败的,看起来 github pages 在移动线路是被完全 block 掉了
迁移cloudflare 基于国内环境对 github 访问的严重破坏,考虑迁移到 cloudflare 的 pages 上来(当然 cloudflare 的默认访问也是被严重破坏的,迁移后再进一步优化) …

Securecrt丢失tab以及终端重新配色
今天在使用 Securecrt 的时候,发现 Securecrt 的 tab 标签消失不见了,仔细回想起来,应该是上一次误按了 alt + enter 最大化,然后导致配置丢失的问题
还有表现就是菜单中的 Session Tabs 无论勾选还是不勾选都没有任何变化,以及 Full Screen 菜单当时是灰色不可操作的(之前没截图)
问了 gpt 以及网上搜了一遍,Securecrt 的配置也仔细看了一遍,没有找到有效的解决方案
只好尝试将配置文件 C:\Users\Administrator\AppData\Roaming\VanDyke\Config\Global.ini 重命名 backup 起来,然后重启 Securecrt 进行配置初始化
这时候 tab 显示恢复正常了,但是所有 Session 的配 …

基于hugo的静态博客站点部署
前言 之前写的一些文章,基于 halo 搭建了一个个人站点,运行也有半年多了,大概就长下面这个样子
我没有专门研究怎么配置它的 theme,不过我看有些人整得挺拉风的,最近在考虑迁移到 hugo, 以后记录就使用静态站点了
至于迁移到原因,主要有以下几个点吧
1、服务器要花钱,halo 服务是部署在阿里云的,之前 99 一年买的小鸡,现在已经没优惠了,续费的话费用至少得大几百
2、halo 基于 java 开发的,内存占用实在有点高,再加一个 mysql,内存就没有了,因为请求量也不多,cpu 倒是没什么占用
3、人工运维,hugo 虽然说整体也挺稳定,但是半年来也死机过两三次,不确定什么原因,但从表现看就是内存耗尽了,只能重启机器
4、发布流程麻烦,涉及环节多,最开始登录 web 发布 mardown,需要额 …
